Method, apparatus, and computer program product for geometric warps and deformations

ABSTRACT

Techniques for geometric deformations in computer graphics are described including a flexible and general modular methodology constructing, analyzing, and evaluating geometric warps and deformations. Described techniques include establishing a set of source/target features (and related information)or parameter set for controlling deformation of a graphical model; a set of strength fields are established for controlling how strongly the transformation caused by the mapping of source feature to target feature will be applied to model points. A set of weighting fields modulates the influence of multiple source/target feature mappings on model points. Also described are variations on this technique that allow achieving results similar to conventional method and additional functionality.—

FIELD

[0001] The invention relates generally to computer graphics andanimation and more particularly to techniques for deforming or warpinggraphical objects.

BACKGROUND

[0002] Warping or deforming (the terms are used interchangeably)graphical models is an important operation in many areas of computergraphics. Deformation of planar curves is a basic operation in 2-Dcartoon animation as well as in digital publishing. Surface and solidwarping find widespread application solid and geometric modelmanipulation as well as 3-D animation. Many significant industries suchas portions the entertainment industry and the medical imaging industryrely heavily on suites of computer graphics tools that include warpingtechniques.

[0003] There are many computer-implemented warping techniques known inthe art. Indeed, the literature is heavily populated with nichesolutions to seemingly separate sets of problems. There is a need for awarping technique that addresses the general problems encountered inwarp design and provides a general solution framework flexible enough,not only for warp designers to rapidly develop new warps, but also forthem to achieve warp results comparable to the existing niche solutionswhen desired. Such a general solution technique would facilitate thecomparison of warps, make key aspects of warps easier for the warpdesigner to understand, and allow a warp designer to increase his or herefficiency by more readily integrating existing solutions for particularaspects of a warp. Ideally, such a general solution technique would notcompromise on the warp designer's ability to achieve the same warpresults as could be obtained with conventional solutions. Still further,it would be desirable for such a general solution technique to enablewarp results unobtainable with conventional solutions. Also it would bedesirable for such a general solution technique to modify existingwarping techniques to add new functionality. Additionally it would bedesirable for such a general solution technique to faciliate analysis ofwarps for ascertaining desirable mathematical properties.

[0004] One such exemplary conventional solution are free formdeformations (“FFD”s). Typically FFDs are manipulated by editing ofpositions of control points in a uniform 3-D lattice imposed on aparallelepiped volume. While this technique yields some desirablemathematical properties, it is can often be highly restrictive to a warpdesigner. For instance, with conventional FFDs, it is not practicable tocreate a deformation with a rotation effect centered around a singlecontrol point. To achieve such an effect with a conventional FFD, ahigher resolution control lattice must typically be used; however, thistoo is undesirable as it complicates the deformation interface over themodel. Thus it would be desirable for a warping system to exist thatallowed for more complex warping effects to be easily obtained inconjunction with creating results similar to FFD-type warps.

[0005] Another exemplary conventional solution are image warps such asthose described by Beier and Neely's, Feature-based image metamorphosis,Computer Graphics (SIGGRAPH '92 Proceedings) vol. 26, pages 35-42, July1992. In Beier and Neely's disclosure, image warps are defined byline-segment features. When two (or more) line segments “squeeze” aportion of the image, the warped image may exhibit undesirable spatialbuckling artifacts. These artifacts arise out of an assumption that thetransformation for a line segment feature should not deform the image ina direction perpendicular to the line segment. For a single-segment,this assumption may not lead to undesirable effects, however for morecomplex warps, spatial buckling can arise. Accordingly it would beadvantageous if a warping system were available that could eliminatespatial buckling in feature based image warps.

[0006] Still another exemplary conventional technique is the frameworktaught by Singh and Fume in Wires: A geometric deformation technique,SIGGRAPH '98 Conference Proceedings, Pages 405-414. ACM SIGGRAPH,Addison Wesely, July 1998. Wires provides an interactive deformationframework for complex geometric models based on a metaphor to asculptor's armature, i.e., controllable curves that deform the surfaceof an graphical object near the curve (a “wire”). While the Wiresframework provides a useful geometric deformation technique, it also cancreate buckling and tearing artifacts when a given wire's referencecurve is shaped so that a set of points is equidistant from differentparts of the curve that specify competing deformations. Therefore itwould be beneficial if a warping technique existed that could providethe functionality of Wires-type techniques but in a way which enabledbuckling and tearing artifacts to be eliminated.

[0007] Frequently variations on a (typically complex) surface aredesired. Direct manipulation of the surface itself may be too timeconsuming. There are a number of conventional multiresolution editingschemes that provide some capability for efficient surface variation.However the conventional methods do allow adequate flexibility (forinstance they often restrict the relationship between the fine surfacemodel, e.g., a vertex mesh, and the control model in terms of topologyor mesh connectivity). While some conventional methods do allow controlmodels of arbitrary topology, such methods may only approximate theedited control points (rather than being interpolating). However,interpolating warps frequently can provide a more intuitive userinterface. Accordingly a need exists for an interpolating warp that maybe used to conveniently deform a more complex surface of arbitrarytopology.

[0008] Also, warp designers commonly desire to deform a first surface bymapping regions of the first surface to regions of a second surface. Forinstance, in computer animation, when the first surface is impacted bythe second surface, the first surface may be stretched out of shape.Some physics-based systems that implement this behavior do exist,however such systems are frequently inadequate for production ofexaggerated or fictional animation effects. Thus it would be helpful fora warping technique to exist that facilitated deformations of surfaceregions.

SUMMARY

[0009] In order to provide solutions to these and other objectives, oneaspect of the present invention are methods for generating graphicalwarps or deformations through feature-based transformation of anundeformed model to create a deformed model. An illustrative methodincludes receiving the undeformed model and a set of featurespecifications each of the set of feature specifications including asource feature, a target feature, and related deformation parameters.The set of feature specifications contains elements for controlling thedeformation of the undeformed model. An additional part of thisillustrative method includes receiving a set of transformationscorresponding to the set of feature specifications and for mapping thesource feature to the target feature in each of the set of featurespecifications, and receiving a set of strength fields corresponding tothe set of feature specifications and defined over the undeformed modelfor scaling the magnitude of each of the set of transformations,establishing a set of scaled transformations. The illustrative methodalso includes receiving a set of weighting fields corresponding to theset of feature specifications and defined over the undeformed model fordetermining the relative influence of the set of scaled transformations;computing a sum of the set of scaled transformations, weighted by theset of weighting fields, creating a deforming function for deforming theundeformed model to generate the deformed model; and returning thedeformed model.

[0010] In a variation of the illustrative method, at least one of theset of feature specifications is continuous and has correspondingparameterized strength field, transformation, and weighting field. Inthis variation, the illustrative method also includes receiving asampling function for discretizing the transformation and samplingstrength and weighting fields and computing a discretizedtransformation, a sampled strength field, and a sampled weighting fieldwith the sampling function. In this instance, the step of computing asum of the set of scaled transformations employs the discretizedtransformation, the sampled strength field, and the sampled weightingfield.

[0011] Still further, the set of feature specifications, the set oftransformations, the set of strength fields, the set of weightingfields, and the sampling function can be received by a combined functionthat computes the discretized transformation, the sampled strengthfield, and the sampled weighting field.

[0012] It should be noted that the present invention is operable withgeometric deformations in a general manner. In particular, the presentinvention is not limited to feature-based deformations, although it mayobtain particular benefits with feature-based deformations.

[0013] The illustrative method operates with a wide variety of featuresand conveniently generates many useful deformations. In one version, theset of feature specifications includes a plurality of line segmentfeatures; the set of transformations corresponding to the plurality ofline segment features map source coordinate frames to target coordinateframes; and the set of weighting fields corresponding to the pluralityof line segment features fall off with distance. In some instances, theset of weighting fields give influence to line segment features in theplurality of line segment features in relation to their length. In someinstances, the source coordinate frames include a constrained basisvector and an unconstrained basis vector and the unconstrained basisvector is selected responsive to a weighted sum of the vectorsperpendicular to the constrained basis vector for each of said targetcoordinate frames.

[0014] In another version, the set of feature specifications includescontrol points in an at least two dimensional lattice. The at least twodimensional lattice has an associated local coordinate system, and theset of weighting fields corresponding to the control points includeBernstein polynomials with their arguments as points of the undeformedmodel represented in the local coordinate system. In a variation,oriented points are used.

[0015] In yet another version, at least one of said set of featurespecifications includes a source curve and a target curve. Here,corresponding members of the set of parameterized transformationsinclude a composition of a translation from points along the sourcecurve to corresponding points along the target curve, a rotation takingthe tangent at the points along the source curve to the tangent at thepoints along the target curve, and a scale centered at the points alongthe source curve. In addition, corresponding members of said set ofstrength fields include a falloff function having a domain and a rangeand monotonically decreasing over the range. Over at least a portion ofthe domain (and sometimes over the entirety), arguments of the fallofffunction include a distance between elements of the undeformed model andpoint along the source curve and a rate of falloff for the distance.Also, corresponding members of the set of weighting fields include ascaled displacement function having a domain and a range, wherein for atleast a portion of the domain the scaled displacement function includesa power of the displacement of elements of said undeformed model by thecorresponding members of said set of transformations.

[0016] In another version, the undeformed model includes controlvertices of a fine detail model. In this instance, and at least one ofthe set of feature specifications may include a source position and atarget position of one or more vertices of a coarse deformation mesh.The coarse deformation mesh may be configured so that deformation of thefine surface model may be obtained by deformation of the coarsedeformation mesh. In addition, the set of feature specificationsincludes one or more sets of edges incident on the one or more vertices.

[0017] In still another version, the undeformed model includes controlvertices of a surface for deformation. No representation of the surfaceis essential and any point valued model could be used. Source and targetfeatures are surface regions (surfaces or parts thereof) described as aafunction that evaluates to tuples of a point on the feature and a vectornormal to the point on the source or target surface region. The sourceand target suface regions need not be subsets of the suface model.Corresponding members of the set of transformations include acomposition of a translation mapping points on the source region of thesurface to points on the target region of the surface, and a rotationtaking the vector normal to the points on the source region to thevector normal to the points on the target region of the surface. In avariation, corresponding members of the set of strength fields localizethe effect of the set of transformations around the source surfaceregion. In addition, corresponding members of the set of weightingfields decrease monotonically with corresponding members of said set ofstrength fields and the set of weighting fields decrease responsive to(a) a distance between control vertices of the surface for deformationand said point on said surface, (b) a range for limiting the region ofthe weighting field, and (c) a rate for controlling the rate of decreaseof the weighting field.

[0018] Another aspect of the invention is computing machinery configuredto carrying on the methods in accordance with the invention including,for instance, the above-described methods. Still another aspect is acomputer program product including a computer readable medium havingcomputer program code encoded thereon able to configure computingmachinery to carry on methods in accordance with the invention.

[0019] These and other features, aspects, and advantages of the presentinvention will become better understood with regard to the followingdescription, appended claims, and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The file of this patent contains at least one drawing executed incolor. Copies of this patent with color drawing(s) will be provided bythe Patent and Trademark Office upon request and payment of thenecessary fee. Unless otherwise noted, in the color drawings, sourcefeatures are indicated in red, and target features in blue.

[0021]FIG. 1 depicts a computer system capable of being configured toembody aspects of the invention in accordance with an illustrativeembodiment;

[0022]FIG. 2A depicts an undeformed model with a point feature;

[0023]FIG. 2B depicts a deformed model for the undeformed model of FIG.2A deformed with a simple translation;

[0024]FIG. 3A depicts an undeformed model with a point feature andscaling field;

[0025]FIG. 3B depicts a deformed model for the undeformed model of FIG.3A deformed with a simple translation scaled by the scaling field;

[0026]FIG. 4A depicts an undeformed model with two point features andtwo weighting fields;

[0027]FIG. 4B depicts a deformed model for the undeformed model of FIG.4A deformed with simple translations weighted by weighting the fields ofFIG. 4A;

[0028]FIG. 5A depicts an undeformed model with three oriented pointfeatures;

[0029]FIG. 5B depicts a deformed model for the undeformed model of FIG.5A deformed with a translation scaled with the Displacment Method;

[0030]FIG. 6A depicts an undeformed model with continuous source andtarget curve features;

[0031]FIG. 6B depicts a deformed model for the undeformed model of FIG.6A;

[0032]FIG. 7A depicts a flow diagram of a method for computing featurebased warps in accordance with an illustrative embodiment;

[0033]FIG. 7B depicts a flow diagram of a method for computing featurebased warps with discretization of continuous features in accordancewith an illustrative embodiment;

[0034]FIG. 7C depicts a flow diagram of a method for computing featurebased warps with discretization of continuous quantities combined with aconstruction function in accordance with an illustrative embodiment;

[0035]FIG. 8 depicts a class diagram of an implemetation in accordancewith an illustative embodiment;

[0036]FIG. 9A depicts an undeformed model with a lattice of source andtarget point features;

[0037]FIG. 9B depicts a deformed model for the undeformed model of FIG.9A;

[0038]FIG. 10A depicts an undeformed model for deformation with aconventional free-form deformation technique;

[0039]FIG. 10B depicts a deformed model for the undeformed model of FIG.10A;

[0040]FIG. 11A depicts an undeformed model in a variant of Free-formDeformation using coordinate frames to produce a local rotationaleffect;

[0041]FIG. 11B depicts a deformed model for the undeformed model of FIG.11A;

[0042]FIG. 12A depicts an undeformed model with line segment source andtarget features in a warp producing an image warp result;

[0043]FIG. 12B depicts a deformed model for the undeformed model of FIG.12A;

[0044]FIG. 13A depicts an undeformed model with competing line segmentfeatures in an image warp;

[0045]FIG. 13B depicts a deformed model for the undeformed model of FIG.13A showing spatial buckling caused by the competing features;

[0046]FIG. 13C depicts a deformed model for the undeformed model of FIG.13A where global effects have been considered to eliminate spatialbuckling of FIG. 13B

[0047]FIG. 14A depicts an undeformed model with curve source and targetfeatures of a wires-type deformation;

[0048]FIG. 14B depicts a deformed model for the undeformed model of FIG.14A showing spatial buckling artifacts encountered using conventionalmethods to achieve a wires-type deformation;

[0049]FIG. 14C depicts a deformed model for the undeformed model of FIG.14A lacking spatial buckling artifacts obtainable in accordance with anillustrative embodiment;

[0050]FIG. 15A depicts an undeformed model of simulated cloth and anunwanted object intersection amenable to correction with an illustrativeembodiment;

[0051]FIG. 15B depicts a low resolution mesh imposed on the simulatedcloth of of FIG. 15A;

[0052]FIG. 15C depicts the adjustment of the low resolution mesh of FIG.15B to correct the simulated cloth's intersection with the object;

[0053]FIG. 15D depicts a deformed model for the undeformed model of FIG.15A showing the corrected simulated cloth;

[0054]FIG. 16A depicts an original surface in an undeformed model;

[0055]FIG. 16B depicts a low resolution mesh imposed on the originalsurface of FIG. 16A;

[0056]FIG. 16C depicts the adjustment of the low resolution mesh of FIG.16B to create a variation in the low resolution mesh;

[0057]FIG. 16D depicts a deformed model for the undeformed model of FIG.16A showing the variation in the surface model;

[0058]FIG. 17A depicts an undeformed model with a second surfaceinterpenetrating a first surface;

[0059]FIG. 17B a deformed model of FIG. 17A with the first surfacedeformed to match the second surface;

[0060]FIG. 17C depicts another view of the deformed model of FIG. 17Bwhere the first surface has been deformed to match the second surface;and

[0061]FIG. 17D depicts another deformed model for the undeformed modelof FIG. 17A showing a different effect of the second surface contactingthe first surface.

DETAILED DESCRIPTION

[0062] Equations

M′(u)=D(u, M)<M(u)>  (1)

D(u, M)=T   (2)

D(u, M)=S(u, M)·T   (3)

[0063] $\begin{matrix}{{D(u)} = {\sum\limits_{i = 1}^{N}\left\{ {{{\hat{W}}_{i}\left( {u,M} \right)} \cdot \left( {{S_{i}\left( {u,M} \right)} \cdot T_{i}} \right)} \right\}}} & (4) \\{{D(u)} = {\sum\limits_{i = 1}^{N}{\int_{v \in V_{i}}^{\quad}{{{{\hat{W}}_{i}\left( {v,u,M} \right)} \cdot \left( {{S_{i}\left( {v,u,M} \right)} \cdot {T_{i}(v)}} \right)}{v}}}}} & (5) \\{{D(u)} = {\sum\limits_{i = 1}^{N}{\sum\limits_{v_{j} \in V_{i}}{{{\hat{W}}_{i}\left( {v_{j},u,M} \right)} \cdot \left( {{S_{i}\left( {v_{j},u,M} \right)} \cdot {T_{i}\left( v_{j} \right)}} \right)}}}} & (6)\end{matrix}$

F _(ijk) ={P _(ijk) , P′ _(ijk)}  (7a)

T _(ijk) =P′ _(ijk) −P _(ijk)   (7b)

S_(ijk)=1∀u   (7c)

W _(ijk) =B _(i) ^(l)(M _(x)(u))B _(j) ^(m)(M _(y)(u))B _(k) ^(n)(M_(z)(u))   (7d)

F_(i)={L_(i), L′_(i), a_(i), b_(i), p_(i)}  (8a)

T_(i)=map from f_(i)→f′_(i)   (8b)

S _(i)(u)=1∀u   (8c)

[0064] $\begin{matrix}{{W_{i}(u)} = \left( \frac{{length}^{p_{i}}}{a_{i} + {dist}} \right)^{b_{i}}} & \left( {8d} \right)\end{matrix}$

$\begin{matrix}\begin{matrix}{\sum\limits_{j}\left\lbrack {{\hat{W}}_{ij}\left( {R_{j}{\langle N_{i}\rangle}} \right)} \right\rbrack} \\{{{where}\quad W_{ij}} = \left( \frac{{length}^{p_{j}}}{\left( {a_{j} + {dist}} \right)\left( {a_{j} + {\left( {Q_{i} - P_{i}} \right) \cdot \left( {Q_{j} - P_{j}} \right)}} \right)} \right)^{b_{j}}} \\{{{and}\quad {\hat{W}}_{ij}} = \frac{W_{ij}}{\sum\limits_{k = 1}^{n}W_{ik}}}\end{matrix} & \left( {8e} \right)\end{matrix}$

F_(i)={C_(i), C_(i), f_(i), r_(i), x_(i), m_(i)}  (9a)

T _(i)(v)=T∘R∘S   (9b)

[0065] $\begin{matrix}{{S_{i}\left( {v,u} \right)} = {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)}} & \left( {9c} \right) \\{{S_{i}\left( {v,u} \right)} = \begin{Bmatrix}{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{{D_{i}^{M{(u)}} - {C_{i}(v)}}} \right)} & {{{if}\quad \alpha} \geq \delta_{i}} \\{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{{Interp}(\alpha)} \right)} & {{{if}\quad 0} < \alpha < \delta_{i}} \\{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} & {{{if}\quad \alpha} \leq 0}\end{Bmatrix}} & \left( {9d} \right) \\{{W_{i}\left( {v,u} \right)} = \left\{ \begin{matrix}\begin{matrix}0 & {{if}\quad {\exists{c < {v\quad {s.t.\quad {{{M(u)} - {C_{i}(c)}}}}} < {{{M(u)} - {C_{i}(v)}}}}}}\end{matrix} \\\begin{matrix}{{{\left( {{S_{i}\left( {v,u,M} \right)} \cdot {T_{i}(v)}} \right){\langle{M(u)}\rangle}} - {M(u)}}}^{m_{i}} & {otherwise}\end{matrix}\end{matrix} \right.} & \left( {9e} \right) \\{{W_{i}\left( {v,u} \right)} = \left( {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} \right)^{k_{i}}} & \left( {9f} \right)\end{matrix}$

W _(i)(v, u)=∥T _(i)(v)<M(u), S _(i)(v,u)>−M(u)∥^(m) ^(_(i))   (9g)

[0066] $\begin{matrix}{{W_{i}\left( {v,u} \right)} = \left( {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} \right)^{k_{i}}} & \left( {9h} \right)\end{matrix}$

F_(i)={P_(i), E_(i), P′_(i), E′_(i)}  (10a)

T_(i)=A∘T   (10b)

S _(i)(u)=1∀i,u   (10c)

[0067] $\begin{matrix}{{W_{i}(u)} = {{f_{\alpha \quad \beta}\left( \frac{{{M(u)} - P_{i}}}{E_{im}} \right)}\left( {\Pi_{j}{f_{\gamma \quad \mu}\left( \frac{\left( {{M(u)} - P_{i}} \right) \cdot E_{ij}}{E_{ij} \cdot E_{ij}} \right)}} \right)}} & \left( {10d} \right)\end{matrix}$

F_(i)={Surf_(i),Surf′_(i),α_(i),β,r_(i),e_(i)}  (11a)

T _(i)(v)=R∘T   (11b)

S _(i)(v, u)=f _(α) _(i) _(β) _(i) (∥M(u)−Surf_(i)(v)·pos∥)   (11c)

[0068] $\begin{matrix}{{W_{i}\left( {v,u} \right)} = {{S_{i}\left( {v,u} \right)}\left( \frac{1}{ɛ + \left( \frac{{{M(u)} - {{{Surf}_{i}(v)} \cdot {pos}}}}{r_{i}} \right)^{e_{i}}} \right)}} & \left( {11d} \right)\end{matrix}$

DESCRIPTION OF FIGURES

[0069] In preferred embodiments, methods according to the invention arecomputerimplemented. FIG. 1 depicts a computer system 1000 capable ofimplementing and embodying aspects of the invention. The computer system1000 includes a microprocessor 1100 comprising an arithmetic logic unit1125 for performing arithmetic and logic operations, a set of registers1175 providing rapid operational data access and storage, and a controlunit 1150 for fetching, decoding, and executing instructions. Thecomputer system 1000 further comprises a main memory 1200 capable ofstoring an executing program and data used by the program, a secondarystorage 1300 capable of storing more information than the main memory1200 and which may comprise one or a collection of devices such asmagnetic or optical disks, or the like. In addition, the computer system1000 comprises a bus 1600, communicatively coupled with themicroprocessor 1100, the main memory 1200, and the secondary storage1300 capable of providing a datapath for moving data and instructionsamong attached devices.

[0070] The computer system 1000 also comprises an input/output devicecontroller 1400 communicatively coupled with the bus 1600 and configuredfor controlling input/output from devices. The input/output devicecontroller 1400 may operate with, for instance, a keyboard 1710, adisplay 1720, a data network 1730, and a pointing device 1740. Inaddition, the input/output device controller 1400 may operate with amedia drive 1750 such as a disk drive, CD drive, or the like. The mediadrive 1750 may operate with a computer-usable storage medium 1755capable of storing computer-readable program code able to configure themicroprocessor 1100 to embody aspects of the invention. The input/outputdevice controller 1400 may also operate with a graphics product writer1760 such as a film writer, DVD writer, or the like. The graphicsproduct writer 1760 operates with a computer graphics product 1765 suchas film, DVD, etc. In some embodiments, warps are created by thecomputer system 1000 and written on the computer graphics product 1765along with other images. The graphics product writer 1760 and thedisplay 1720 typically use a frame buffer 1500. As depicted, thecomputer system 1000 is general purpose computing machinery. As one ofskill in the art appreciates, programmed instructions may configuregeneral purpose computing machinery to embody structures for performingfunctions in accordance with aspects of the invention. Programmedinstructions, either in source code or compiled form (“code”) may bestored on the computer-usable storage medium 1755. The computer system1000 may also operate with a compiler (not shown) to generateexecutables from source code. The computer-usable storage medium 1755having code for suitable configuring the computer system 1000 to carryon features and/or perform functions in accordance with the inventionmay be a made and used in any conventional way. Special purposecomputing machinery may also be used, as may programmable or evolveablehardware, and the particular hardware environment is not fundamental.Rather, one skilled in the art will recognize numerous structures ofprogrammed or programmable logic capable of being configured to embodyaspects of the invention. In some illustrative versions of theinvention, high performance graphics workstations such as thoseavailable from Silicon Graphics of Mountain View, Calif. are used.

[0071] In an illustrative embodiment of the invention, computer programcode configures a graphics computer system such as the computer system1000 to provide a system for geometric warps and deformations. Inaccordance with the illustrative embodiment, the warp acts on anundeformed model represented as a point-valued function M(u) defined ona source domain U such that:

M(u)=modelpoint, for uεU

[0072] Any of many conventional model representations may be useddepending on the type of model being warped. In some embodiments avertex mesh is used, in others an image is used. When a vertex mesh isused, U could be the set of n vertex indices 1 . . . n and M(u) is thevertex indexed by uεU. In vertex mesh embodiments, the warp will movethe vertices to new positions in space. The mesh may represent, forinstance, a polygonal model or the control vertices of a smooth surface.When an image is used, U could be the 2-D plane, and M(u)=u is definedover the plane. The warp will create a mapping of pixel coordinatesbetween the original and deformed images, for subsequent sampling of theimage data. One skilled in the art having the benefit of this disclosurewill readily appreciate other model representations operable withfeatures of the invention and accordingly are within the scope andspirit of the invention.

[0073] Illustrative embodiments of invention are explicitly featurebased, however this is not fundamental. Rather, the present invention isgenerally operable with the broader class of geometric deformations.

[0074] In accordance with an illustrative embodiment, output of a warpmay be expressed as a deforming function, D(u,M), that is atransformation-valued function defined on the domain U and taking avalue uεU and the model M as input. To compute the warped model M′ thatis a point-valued function defined on the domain U, as is M(u), thedeforming function is evaluated at u and applied to the point given byevaluating the model at u. For clarification of exposition, it ishelpful to denote the application of a translation T to a point p byT<p>. Notationally:

M′(u)=D(u,M)<M(u)>  (1)

[0075] One simple deforming function convenient in some instances is adisplacemen model. For instance, the output of the warp may be generatedwith a vector-valued function defined on the domain U. The displacementmodel can then be added to the undeformed model to yield the deformedmodel.

[0076] Further in accordance with the illustrative embodiment, a set offeature specifications is used to represent mappings from source totarget features. Each of the set of feature specifications comprises asource feature, a target feature, and related deformation parameters forcontrolling deformation caused by the feature specification. In someinstances the number of related deformation parameters may be zero.Again, as noted above, some embodiments of the invention are not featurebased and, in such case, a parameter set is used for controlling thewarp.

[0077] The invention is not limited to particular types of features. Inpreferred embodiments a warp designer selects the set of featurespecifications; this aspect is limited only by the warp designer'singenuity. Further, source and target features need not be part of theundeformed or deformed model. Frequently, however, they are indicidenton model(s).

[0078] Point Features

[0079] A simple version of the invention will now be described toillustrate basic aspects of the invention. In this version the set offeature specifications consists of a single element and the singleelement is a point feature. The warp maps the point feature, from itssource position, P, to its target position, P′. This transformation is aconstant translation, T=P′−P. Equation 2 represents the resultingdeforming function:

D(u,M)=T   (2)

[0080]FIG. 2A depicts an undeformed model and FIG. 2B a deformed model.The warp transforms the undeformed model to the deformed model. FIG. 2Adepicts a reference box 2100, a source feature 2200 and an targetfeature 2300. The effects of the constant translation T can beappreciated with reference to FIG. 2B where the source feature 2200 hasbeen mapped to the target feature 2300. The constancy of the translationacross the undeformed model can be understood in view of the position ofthe model points relative to the reference box 2100 in FIG. 2A and FIG.2B.

[0081] The translation described above may provide more desirablewarping when its effect is varied across the undeformed model. A set ofstrength fields corresponding to the set of feature specifications arealso defined over the undeformed model. The set of strength fieldsoperates in computing the deformed model by scaling the magnitude ofeach of the set of transformations over elements of the undeformedmodel. Notationally, S(u,M) denotes a strength field for u in U.Strength fields are parameterized on the model M, however it may beassumed for the purposes of coxmputing the deformation that the model isavailable to the set of strength fields and the simpler notation S(u)interchangeably used for clarity. In preferred versions, S(u) is ascalar-valued function taking on values in the range [0,1] for any u inU.

[0082] The multiplication of a transformation, T, by a scalar s isdenoted s·T. Modifying equation (2) to include the strength fieldyields:

D(u, M)=S(u, M)·T   (3)

[0083]FIG. 3A depicts an undeformed model with a source feature 3100 anda target feature 3200. A strength field is also shown. The strengthfield is shown in yellow in the accompanying color figures and thetransparency corresponds to value of the strength field: the greater themagnitude of the strength field, the less transparent. As illustrated inFIG. 3A, the strength field falls off radially from a value of 1 at thesource feature 3100.

[0084] The effect of the strength field can be appreciated withreference to FIG. 3B that depicts the target feature 3200 in a deformedmodel. The deformed model corresponds to the simple translationtransformation discussed in connection with FIG. 2A and FIG. 2B scaledwith the strength field depicted in FIG. 3A.

[0085] More generally, aspects of this illustrative embodiment are alsoapplicable when there are plural features. Notationally, assuming, forinstance, a set point features of cardinality n indexed by i, thecorresponding said set of feature specifications F may be writtenF_(i)={P_(i), P′_(i)} for 1≦i≦n. Each of the set of featurespecifications has a corresponding strength field in a set of strengthfields that is similarly denoted S_(i)(u). In addition, each of the setof feature specifications can be described by a translationT_(i)=P′_(i)−P_(i) in this illustrative embodiment.

[0086] When the set of strength fields and the corresponding set oftransformations contain plural elements, a set of weighting fields isintroduced. The set ofweighting fields corresponds to the set of featurespecifications. The set of weighting fields is also defined over theundeformed model, and performs the function of determining the relativeinfluence of a set of scaled transformations over elements in theundeformed model. A scalar value weighting field is conveniently denotedW_(i)(u,M). As with S_(i)(u,M) the weighting field is parameterized onthe model M, however it may be assumed for the purposes of computing thedeformed model that the model is available to the set of weightingfields and the set of strength fields in evaluating model points M(u).

[0087] The set of weighting fields may be included in the equation forcomputing the deforming function at each model-domain point u in U as aweighted averaged of the scaled transformations as shown in Equation 4:$\begin{matrix}{{D(u)} = {\sum\limits_{i = 1}^{N}\left\{ {{{\hat{W}}_{i}\left( {u,M} \right)} \cdot \left( {{S_{i}\left( {u,M} \right)} \cdot T_{i}} \right)} \right\}}} & (4)\end{matrix}$

[0088] In preferred versions, normalized weights are used for the set ofweighting fields and (using the simpler notation)${{\hat{W}}_{i}\left( {u,M} \right)} = \left\{ \begin{matrix}\frac{W_{i}\left( {u,M} \right)}{\sum\limits_{j = 1}^{n}{W_{j}\left( {u,M} \right)}} & {{{if}\quad {W_{j}\left( {u,M} \right)}} \neq {0\quad {for}\quad {some}\quad j}} \\0 & {{{if}\quad {W_{j}\left( {u,M} \right)}} = {0\quad {for}\quad {all}\quad j}}\end{matrix} \right.$

[0089]FIG. 4A depicts an undeformed model with a first source feature4100, a first target feature 4200, a second source feature 4300, and asecond target feature 4400. A first and second weighting field are showncorresponding to, and centered at, the first source feature 4100 and thesecond source feature 4300, respectively. The first weighting field isshown in yellow in the accompanying color figures and the secondweighting field is shown in green. The transparency corresponds to valueof the weighting fields as illustrated in FIG. 4A; the weighting fieldsfall off radially (but at different rates) from 1 at the first sourcefeature 4100 and the second source feature 4300.

[0090] The effect of the weighting field can be appreciated withreference to FIG. 4B that depicts the first target feature 4200 and thesecond target feature 4400 in a deformed model. The deformed modelcorresponds to the simple translation transformation discussed inconnection with FIG. 2A, scaled with the strength field discussed inconnection with FIG. 3A, and weighted with the weighting fields depictedin FIG. 4A.

[0091] Oriented Points

[0092] As one of skill in the art will by now appreciate, the inventionencompasses more complex features than the point features of the simpleversion described up to now. Another illustrative feature is an orientedpoint, that is a point with local coordinate frames. Notationally, f_(i)and f′_(i) represent a source coordinate frame and a target coordinateframe, respectively and one of the set of feature specifications isdenoted:

F_(i)={f_(i),f′_(i)}

[0093] Each of the set of feature specifications defines atransformation that maps the source coordinate frame to the targetcoordinate frame:

T_(i)=map from f_(i)→f′_(i)

[0094] The warp designer may describe T_(i) directly by specifying howit maps frame origins and basis vectors. In addition, the warp designermay describe the transformation as an ordered composition, for instanceof translate, rotate, scale, and shear components. The particular mannerin which the transformation is described is not fundamental and islimited only by the ingenuity of the warp designer.

[0095]FIG. 5A depicts an undeformed model as well as three sourceoriented point features: a first source oriented point 5100, a secondsource oriented point 5300 and a third source oriented point 5500. Eachof the three source oriented point features is depicted with anaccompanying set of basis vectors (shown along the horizontal andvertical axes). FIG. 5A Also depicts three oriented point targetfeatures: a first target oriented point 5200, a second target orientedpoint 5400, and a third target oriented point 5600 . FIG. 5B depicts thedeformed model. Again, the strength fields and weighting fields areradial fall-offs.

[0096] Considering FIG. 5A and FIG. 5B, it will be appreciated that thefirst source oriented point 5100 maps to the first target oriented point5200 as a simple translation. In addition, the third source orientedpoint 5500 maps to the third target oriented point 5600 as a rotation.Finally, the second source oriented point 5300 maps to the second targetoriented point 5400 as a translation and a scale.

[0097] As described above in connection with point features, strengthfield S_(i)(u) scales the deformation of feature specification F_(i)over the undeformed model. Above, this was computed by scaling thetranslation T_(i). However, in other embodiments more generaltransformations may be used. One may define the multiplication s·T of atransformation T by a scalar s in many ways as one skilled in the artwill recognize. Two will be described below with the understanding thatone of ordinary skill in the art, having the benefit of this disclosure,will be able to recognize, make, and use may others and that the manyothers are also within the scope and spirit of the present invention.

[0098] A first method of defining the scaled transformation, is tolinearly interpolate between the identity transformation I and thetransformation T. That is s·T=sT+(1−s)I where T and I are the matrixrepresentations of the transformations T and I, respectively. With thismethod, the effect of applying s·T to a point P is to multiply thedisplacement that would have been caused by T, so that(s·T)(P)=P+s(T<P>−P) This is hereinafter referred to as the“Displacement Method”.

[0099] A second method of defining the scaled transformation isapplicable, for instance, when the transformation is defined as acomposition (the “Composition method”). For instance if thetransformation were defined as an ordered composition of translate,rotate, scale, and shear components, the scaled transformationcould bedefined as follows: scale each component of T by s and recompose toproduce a new transformation, T′ and then apply T′ to p.

[0100] As noted above in the discussion of weighting fields it isdesirable to combine the effects of multiple feature specifications ateach model point by computing a weighted average of the transformationsthey imply. In order to do this for our more general transformations, wemust not only define the result of the multiplication s·T, but also theresult of the addition of transformations. Just as there are many waysof defining the multiplication of a transformation by a scalar, thereare many ways to define this addition.

[0101] In an illustrative embodiment, matrix addition is used for thisaddition. Namely, the matrix representations of the transformations areadded. If the Displacement Method is used to compute the product ofweights and transformations, the computed weighted average is equivalentto a weighted average of the displacements caused by thetransformations. The product of the normalized weights ŵ_(i)(u,M) andtransformations (s_(i)(u,M)·T_(i)) is computed using the displacementmethod (regardless of method used to compute the product(s_(i)(u,M)·T_(i)), and matrix addition is used to compute the sum ofthe transformations. Matrix addition is not fundamental to carrying onthe invention and other techniques could be used.

[0102] Equation (4) still defines the deforming function for thisformulation, but now interpret T_(i) as an arbitrary transformation(s_(i)(u,M)·T_(i)) using one of the more general methods for multiplyinga transformation by a scalar, e.g., the Displacement Method or theComposition Method, and compute the weighted average of transformations,as a weighted average of transformations is a weighted average of thedisplacements caused by those transformations as outlined above.

[0103] Continuous Features

[0104] Up to this point the features shown in the figures have beendiscrete: points or oriented points. Aspects of the invention apply tocontinuous features including, for instance curves and surfaces, aswell. For purposes of exposition, assume that a source curve feature,C_(i)(v), and a target curve feature, C′_(i)(v), in a featurespecification are parameterized over a domain V_(i)=[0,1]. A featurespecification is then denoted:

F_(i)={C_(i)(v),C′_(i)(v)}

[0105] and represents continuous quantities parameterized on the domainV_(i). The deformation caused by the transformation corresponding toF_(i) is now a parameterized transform T_(i)(v): a function that returnsa transformation when evaluated for any vεV_(i); the strength field andthe weighting field are similarly parameterized on V_(i): S_(i)(u,v),W_(i)(u,v) respectively.

[0106] The deforming function is computed as before as a weightedaverage of a (now infinite) set of scaled transformations. With acollection of transformation continuums (one for each featurespecification) the weighted average becomes a summation of integrals asshown in Equation 5: $\begin{matrix}{{D(u)} = {\sum\limits_{i = 1}^{N}{\int_{v \in V_{i}}^{\quad}{{{{\hat{W}}_{i}\left( {v,u,M} \right)} \cdot \left( {{S_{i}\left( {v,u,M} \right)} \cdot {T_{i}(v)}} \right)}{v}}}}} & (5) \\{where} & \quad \\{{{\hat{W}}_{i}\left( {v,u,M} \right)} = \left\{ \begin{matrix}\frac{W_{i}\left( {v,u,M} \right)}{\sum\limits_{j = 1}^{n}{\int_{v_{j} \in V}{W_{j}\left( {v,u,M} \right)}}} & {{{if}\quad {W_{j}\left( {v,u,M} \right)}} \neq {0\quad {for}\quad {some}\quad j}} \\0 & {{{if}\quad {\int_{v_{j} \in V}{W_{j}\left( {v,u,M} \right)}}} = {0\quad {for}\quad {all}\quad j}}\end{matrix} \right.} & \quad\end{matrix}$

[0107] In some instances, the V_(i) in formula 5 are not continuousdomains and are rather discrete collection. When discrete collections,the integrals in formula 5 reduce to summation and formula 5 becomes adouble summation: $\begin{matrix}{{D(u)} = {\sum\limits_{i = 1}^{N}{\sum\limits_{v_{j} \in V_{i}}{{{\hat{W}}_{i}\left( {v_{j},u,M} \right)} \cdot \left( {{S_{i}\left( {v_{j},u,M} \right)} \cdot {T_{i}\left( v_{j} \right)}} \right)}}}} & (6)\end{matrix}$

[0108]FIG. 6A and FIG. 6B illustrate a deformation with a continuousfeature. FIG. 6A depicts a continuous source feature 6100 and acontinous target feature 6200. A transformation, parameterized on acontinuous domain, V, uses the composition method. More particularly,T_(i)(v)=T∘R∘S where:

T=C′ _(i)(v)−C _(i)(v)

[0109] R is the smallest rotation that takes the vector${\frac{{C_{i}(v)}}{v}\quad {to}\quad \frac{{C_{i}^{\prime}(v)}}{v}},$

[0110] and

[0111] S is a uniform scale of magnitude x_(i) centered at the pointC_(i)(v)

[0112] The strength fields and weighting fields are as described belowin connection with Equations 9a-9f.

[0113] The resulting deformed model is shown in FIG. 6B where thecontinous target feature 6200 is shown.

[0114] A warp designer may use various combinations of discrete andcontinuous features in any particular model deformation application. Ina typical practical embodiment, the warp designer will desire thatplural features be used and that at least one of the plural features iscontinuous.

[0115]FIG. 7A depicts a flow diagram of a method for computing geometricwarps and deformations in accordance with an illustrative embodiment. Ina typical practical implementation selections of model representationand user interface aspects would be addressed. These form no part of theinvention, however, and may be carried on in any of several suitableconventional manners as one skilled in the art will apprehend. Processflow initiates at a ‘start’ terminal 7100 and continues where aconstruction function 7250 receives a set of feature specifications orparameter set 7200. A warp designer may create the set of featurespecifications or parameter set 7200 and they could be any combinationof continuous or discrete features or parameters. The particularfeatures in the set of feature specifications or parameter set 7200 arenot fundamental and one skilled in the art may suitably choose selectthem based on the needs of the situation. The warp designer alsopreferably defines the construction function 7250 which provides as itsoutput a set of parameterized transformations 7300, a set of strengthfields 7350, and a set of weighting fields 7400.

[0116] Next, a ‘continuous warp computation’ process 7650 uses Equation5 to compute a deforming function 7750 for computing the warp withEquation 1. The ‘continuous warp computation’ process 7650 takes as itsinputs, the set of parameterized transformations 7300, the set ofstrength fields 7350, and the set of weighting fields 7400 from theconstruction function 7250 as well as an undeformed model 7150.Conveniently, the warp designer specifies the representation of theundeformed model 7150. The ‘continuous feature computation’ process 7650then uses conventional numerical methods to compute the integrals inEquation 5 when evaluating the deforming function 7750. The undeformedmodel 7150 is passed to the deforming function 7750 in accordance withEquation 1 which is evaluated at u and applied to M(u) to create adeformed model 7850 that is returned.

[0117] In other embodiments, the integrals in Equation 5 are notdirectly computed. FIG. 7B depicts of flow diagram of method forgeometric warps and deformations in accordance with such an illustrativeembodiment. Process flow initiates as in FIG. 7A, and the ‘start’terminal 7100, the undeformed model 7150, the set of featurespecifications or parameter set 7200, and the construction function 7250correspond to those discussed in connection with FIG. 7A. However, inthis embodiment any of the set of parameterized transformations 7300,set of strenght fields 7350, and set of weighting fields 7400 thatcorrespond to continuous features are sampled by a sampling function7450.

[0118] Conveniently, the construction function 7250 expresses geometricdeformations in the manner provided above. However, the constructionfunction 7250 could also be of other types to provide fornon-geometrically-based warps. For instance, the construction function7250 could be used to solve for transformations, strength fields, andweighting fields that satisfy particular constraints. One applictioncould be to define an image warp that minimizes an energy function;another could be a freeform deformation tthat satisfied directmanipulation constraints. Still others could result, more generally,from the solution to a constrained or unconstrained optimization. Anillustrative implementation could involve a warp designer specifyingeach of n transformations strength field and weighing fields as a vectorwith m scalar elements (where m is a discrete number of model points,i.e. one value per point). Assembling these n m-vectors into an n by mmatrix provides an interpretation where each row corresponds to atransformation. The matrix then can be viewed as a matrix ofcoefficients of a system of equations that can be solved for field ortransformation values. Another type of construction could involvephysical simulation. One illustrative application could involve aphysics-based deformation where the model is coarsely sampled andstrength and weighing fields used to interpolate between the samples.

[0119] Independent of construction function, the warp designerpreferably specifies a sampling algorithm used by the sampling function7450. No particular sampling algorithm is fundamental to carrying on theinvention. The best sampling algorithm depends on the needs of the warpdesigner and the model representation. In some instances uniformsampling could be used, as could adaptive methods such as quad trees orirregular sampling. The sampling function 7450 receives the set ofparameterized transformations 7300, the set of strength fields 7350, theset of weighting fields 7400 and the undeformed model 7150 and uses thesampling algorithm to output a set of discretized transformations 7500,a set of sampled strength fields 7550, and a set of sampled weightingfields 7600. The output quantities are defined on a domain of modelpoints U.

[0120] These discretized quantities are passed to a ‘discretized warpcomputation’ process 7700 that uses Equation 6 to compute the deformingfunction 7750. As discussed in connection with FIG. 7A, the deformingfunction 7750 is applied to the undeformed model 7150 to return thedeformed model 7850 using Equation 1.

[0121] Programmatically, it is frequently convenient to merge thesampling function 7450 and the construction function 7250. FIG. 7Cdepicts a flow diagram of an illustrative embodiment where this has beendone. A combined construction and sampling function 7275 receives theset of feature specifications or parameter set 7200 and the undeformedmodel 7150 and returns as output the set of discretized transformations7500, the set of sampled strength fields 7550, and the set of sampledweighting fields 7600. These are used as discussed in connection withFIG. 7B to compute and return the deformed model 7850.

[0122]FIG. 8 depicts a class diagram of an implementation in accordancewith the embodiment illustrated in FIG. 7C. The class diagram representselements of a class library preferably implemented in C++. A discretetransformation computation class 8100 performs the deformationcomputations using Equation 6. The warp designer derives theirconstruction/sampling function 8300 from an abstract base class thatrepresentsa construction sampling function 8200. In addition tospecifying a transformation class 8700, the warp designer writesfunctions that generate strength fields 8400 and weighting fields 8500that inheret from an abstract scalar field base class 8600.

[0123] The techniques previously described for geometric warps anddeformations provide a powerful and flexible general framework fordesigning and creating warps and deformations. The result of severalwidely-used warping and deforming techniques may be obtained in a newand improved manner using our techniques.

[0124] One frequently-desired warping result is the free formdeformation of a 2 or 3-D graphical object. In one existingtechnique—that of Sederberg and Parry in Free-form deformation of solidgeometric models, Computer Graphics (SIGGRAPH '86 Proceedings), vol. 20,pages 151-160 (August 1986)—a uniform parallelepiped lattice isestablished over the space where the graphical object is embedded andcontrol points of representation curves established in the lattice. Toachieve the results of the warp, the lattice control points aremanipulated and the space is correspondingly deformed.

[0125] A similar warping result may be obtained with the present newtechniques, and these techniques provide additional warping capabilitynot found in conventional free form deformation techniques. In oneversion, the model M(u) in a freeform deformation (“FFD”) is anypoint-valued set of data. Other embodiments use, for instance,polygonal, solid, or parametric models. A 3-D grid of (l+1)×(m+1)×(n+1)control points located in a local coordinate system imposed on aparallelepiped region acts as a set of features. For geometric claritytnivariate indices, ijk, are used although, in practice it is preferredto map the indexing of the control points to a univariate index; any ofseveral well-known transforms could be used. The local coordinate systemhas an origin, O, and three basis vectors, X, Y, and Z. The location ofthe ijk^(th) control point P_(ijk) in the lattice for the undeformedmodel is $O + {\frac{i}{j}X} + {\frac{j}{m}Y} + {\frac{k}{n}Z}$

[0126] for 0≦i≦l, 0≦j≦m, 0≦k≦n,. A set of transformations is establishedas simple translations T: P′_(ijk)−P_(ijk). A set of strength fields isunity for all model points, and a set of weighting fields is generatedusing Bernstein polynomials:${{B_{i}^{n}(t)} = {\frac{n!}{{i!}{\left( {n - i} \right)!}}{t^{i}\left( {1 - t} \right)}^{n - i}}},{i = 0},\ldots \quad,{n.}$

[0127] In summary:

F_(ijk)={P_(ijk),P′_(ijk)}  (7a)

T _(ijk) =P′ _(ijk) −P _(ijk)   (7b)

S_(ijk)=1∀u   (7c)

W _(ijk) =B _(i) ^(l)(M _(x)(u))B _(j) ^(m)(M _(y)(u))B _(k) ^(n)(M_(z)(u))   (7d)

[0128] where M_(x)(u), M_(y)(u), and M_(z)(u) are the coordinates ofM(u) in the local coordinate system (O, X, Y, Z). The set of scaledtransformations is derived using the Displacement Method. Illustrativeresults of such a deformation can seen with reference to FIG. 9A andFIG. 9B. FIG. 9A illustrates an undeformed model for deformation with aFFD and also depicts a set of source features 9100 and a set of targetfeatures 9200. Each of the set of source features 9100 are transformedto the nearest of the set of target features 9200. FIG. 9B shows thedeformed model.

[0129] One of skill in the art having the benefit of this disclosurewill quickly appreciate applicability of the above-described embodimentto numerous variations of conventional FFD techniques. For instance,trivariate b-spline polynomials could be used in place of Bernesteinpolynomials for the set of weighting fields to obtain local control;layered applications of successively higher resolution lattices could beused; lattices of arbitrary topology could be used. Further, a directmanipulation interface could receive user input and a solution for thecorresponding FFD specification could be obtained therefrom. See RonMacCracken and Kenneth Joy, Free-From deformation with lattices ofarbitrary topology, SIGGRAPH 96 Conference Proceedings, AnnualConference Series, pages 181-188, ACM SIGGRAPH, Addison-Weseley, August1996. In this latter instance, feature specifications are defined by thedirect-manipulation constraints derived from user input. These may bemapped to lattice control point transformations for the FFD.

[0130] While results conventionally associated with FFD may be obtainedwith the abovedescribed illustrative embodiment, some variations canalso obtain results that are unobtainable with conventional techniques.For instance, given a fixed-density control lattice, it is not possiblewith conventional FFD techniques to conveniently create a deformationwith a rotational effect centered around a single control point. Whenusing conventional FFD techniques, to obtain the desired result, ahigher resolution control lattice must be used at the expense ofincreased computational cost and/or user intervention. Referring to FIG.10A, a source feature 10100 and a target feature 10200 are shown.Warping the source feature 10100 to the target feature 10200 creates thedeformed model of FIG. 10B. However, conventional FFD techniques do notprovide a means for producing a local rotation, for instance centered atthe source feature 10100.

[0131] A solution to this problem can be provided with our techniques bysubstituting more complex features for the simple point features ofconventional FFD techniques. In one illustrative variation, orientedpoints are used. In this variant, the warp designer manipulates thedeformation by adjusting a lattice of local coordinate frames each withan origin and basis vectors. The warp is altered so that the featurespecifications include source and target coordinate frames in lieu ofsource and target points. The transformations now take source coordinateframes to target coordinate frames. See, e.g., dicussion below inconnection with Equation 8b which may be used).

[0132] In accordance with this variant, use of oriented points to obtaina local rotation is shown in FIG. 11A and FIG. 11B. FIG. 11A illustratesan oriented point source features 11100 and an oriented point targetfeatures 11200. FIG. 11B shows only the set of oriented point targetfeatures 11200 in the deformed model. Comparison of FIG. 11A and FIG.11B illustrates a rotational effect from rotating the central frame ofthe lattice, the set of oriented point source features 11100.

[0133] Another frequently-desired warping result is the image warp. Inone existing technique, that of Beier and Neely in Feature-based imagemetamorphosis, Computer Graphics (SIGGRAPH '92 Proceedings), vol. 26,pages 35-42 (July 1992), a 2-D image space is used for a cross-dissolve.Directed line segments are selected as features and the image warp isused to align the two images at the ends of the cross-dissolve.

[0134] A similar warping result may be obtained with the present newtechniques and these techniques provide additional warping capabilitynot found in conventional image warp techniques. In one illustrativeembodiment, the warp acts as an inverse mapping—operating on pixels ofthe deformed model. U is defined as the pixel coordinates of thedestination image (the undeformed model) and M(u)=u. With inversemapping, the feature specifications are source and target line segmentsin the destination and source images, respectively. Each of a set offeature specifications is described as a pair of line segments, L_(i)and L′_(i) having endpoints (P_(i), Q_(i)) and (P_(i), Q₁) along withscalar parameters a_(i), b_(i), p_(i) (described below). Each of a setof transformations is a map from f_(i) to f′_(i) where f is a 2-Dcoordinate frame with origin P_(i), and x-basis vector equal toQ_(i)−P_(i) and a y-basis vector equal to the normalized vectororthogonal to Q_(i)−P_(i) and similarly for f′. To ensure that arotation or scale of a single line segment produces a correspondingrotation or scale of the image, each of a set of strength fields is setto unity. Each of a set of weighting fields are designed to fall-offwith distance, and to give longer line segments greater influence. Insummary:

F_(i)={L_(i), L′_(i),a_(i),b_(i),p_(i)}  (8a)

T _(i)=map from f_(i)→f′_(i)  (8b)

S _(i)(u)=1∀u   (8c)

[0135] $\begin{matrix}{{W_{i}(u)} = \left( \frac{{length}^{p_{i}}}{a_{i} + {dist}} \right)^{b_{i}}} & \left( {8d} \right)\end{matrix}$

[0136] where length is the length of the line segment L_(i) and dist isthe minimum distance from the pixel coordinate M(u) to the line L_(i).

[0137]FIG. 12A depicts an undeformed model for an image warp withline-segment features. The deformation maps a first source feature 12100to a first target feature 12200 and a second source feature 12300 to asecond target feature 12400. FIG. 12B shows the deformed model.

[0138] Conventional 2-D image warping techniques have been extended tothe 3-D volume domain. See Apostolos Lerios et al., Feature-Based volumemetamorphosis, in SIGGRAPH 95 Conference Proceedings, pages 449-456 ACMSIGGRAPH, Addison-Weseley, August 1995. In a variation of the embodimentdescribed above, a 3-D volume is warped rather than a 2-D planar image.In this instance, the features may be points, line segments, rectangles,and/or boxes. These become feature specifications that constrain, zero,one, two, or three of the basis vectors of the source and destinationcoordinate frames in 3-D. Unconstrained basis vectors are chosen so asnot to deform the model in their direction. See Beier and Neely.

[0139] While results conventionally associated with image warping may beobtained with the above-described illustrative embodiment, versions ofthe invention can also obtain results that are unobtainable withconventional techniques. For instance, when two line-segment features“squeeze” the image, the resulting deformed image can exhibit spatialbuckling artifacts where the 2-D plane folds back upon itself.

[0140] This buckling behavior may be understood as a failure inconventional techniques to consider global deformation effects. Forinstance, Beier & Neely assume that the transformation for aline-segment feature should not deform the image in the directionperpendicular to the line-segment. For a single line-segment, thisassumption is reasonable and results in the expected imagetransformation. However, for multiple line-segments, this assumption canlead to nearby transformations that conflict dramatically enough tocause buckling artifacts such as those shown in FIG. 13B. Taking globaldeformation effects into consideration can prevent these artifacts.

[0141] A principle applicable for solving this problem is for the basisvector along the feature to be transformed in accordance with thefeature specification while the other basis vector remainsunconstrained. Correa et al., Texture mapping for cell animation,SIGGRAPH 98 Conference Proceedings, p. 435-446, Addison-Weseley July,1998, describe a technique developed in the domain of 3-D curve-basedwarping. With this technique, instead of selecting a null transformationto apply to the unconstrained basis vector, they compute a target vectorbased on the effect of other transformations in the warp.

[0142] An illustrative variant of the invention uses similar approach isused to compute the target value of the vector perpendicular to eachline segment in the source coordinate frame. In this instance, featurespecifications correspond to transformations as follows. Each of the setof feature specifications is as described above:

F_(i)={L_(i), L′_(i), a_(i), b_(i), p_(i)}  (8a)

[0143] Where L_(i) and L′_(l) are directed line segments defined bytheir endpoints as described above. To compute the set oftransformations T={T_(i)}, we let the transformation for F_(i) be thetransformation that maps 2-D source coordinate frames:

T_(i)=map from f_(i)→f′_(i)  (8b)

[0144] f has origin P_(i), x-basis vector Q_(i)-P_(i), and y-basis equalto the normalized vector N_(i) orthogonal to L_(i);. However, f′ hasorigin P_(i) x-basis Q_(i)-P_(i) and y-basis given by: $\begin{matrix}\begin{matrix}{\sum\limits_{j}\left\lbrack {{\hat{W}}_{ij}\left( {R_{j}{\langle N_{i}\rangle}} \right)} \right\rbrack} \\{{{where}\quad W_{ij}} = \left( \frac{{length}^{p_{j}}}{\left( {a_{j} + {dist}} \right)\left( {a_{j} + {\left( {Q_{i} - P_{i}} \right) \cdot \left( {Q_{j} - P_{j}} \right)}} \right)} \right)^{b_{j}}} \\{{{and}\quad {\hat{W}}_{ij}} = \frac{W_{ij}}{\sum\limits_{k = 1}^{n}W_{ik}}}\end{matrix} & \left( {8e} \right)\end{matrix}$

[0145] where dist is the minimum distance between the line segmentsL_(i) and L′_(i), and R_(j) is the rotation that takes L_(j) to L′_(j).This corrects the transformation by setting the unconstrained targetvector to be a weighted average of the target vectors implied by allline segments. The second term in the denominator of w_(ij) givespreference to those line segments that are initially perpendicular toL_(i) as those line segments whose direction is closest to N_(i). Thestrength and weighting fields are preferably in accordance withEquations 8c and 8d, respectively.

[0146]FIG. 13A and FIG. 13C depict a result obtained with thisembodiment. FIG. 13A shows a first source feature 13100 and a firsttarget feature 13200. The deformation of the first source feature 13100to the first target feature 13200 is illustrative of a shear, howeverthe transformation “squeezes” the model between the source feature andthe target feature coordinate frames. FIG. 13B shows the results withconventional Beier and Neely image warping techniques: the competingfeatures result in potentially undesirable spatial buckling artifacts.FIG. 13C shows a model deformed in accordance with this illustrativeembodiment. It can be appreciated that the deformed model of FIG. 13Cconsiders global effects to compute the target value of the vectorperpendicular to each line figure in the source coordinate frame. Theresult is the expected shear shown in FIG. 13C.

[0147] Other desirable deformations may be defined by geometricparameters. In one variation of the present invention, deformations areso defined and vary in a geometrically meaningful way including, forinstance, along an axis. In this variation, for each model point, asingle transformation is selected and the deformation computed byapplying this transformation to the model point. One skilled in the artwill readily appreciate the flexibility and power the present inventionadds to previous geometric deformation techniques. For instance, Barr,Global and local deformations of solid primitives, Computer Graphics(SIGGRAPH '84 Proceedings) vol. 18, pages 21-30, describes a family ofparameter-based warps now known as “Barr deformations”. While Barr'swork is significant, a warp designer may obtain additional flexibilitywith the present invention. Barr applies each selected transformation toits corresponding model point with full effect. By contrast, features ofthe present invention allows the warp designer to modulate the effectacross a model through coordinated selection of strength fields.Further, Barr selects only one transformation for each model point; thisdoes not allow for the blending of multiple transformations. Bycontrast, features of the present invention provides for such blending.Still further, the present invention allows the warp designer toconveniently both modulate and blend transformations of a model. Bylifting these restrictions found in prior work through the combinationincluding strength and weighting fields, the present invention providesa more powerful and flexible tool for warp designers.

[0148] A taper can illustrate this variation; one skilled in the arthaving the benefit of this disclosure will appreciate may others. Theparameter set for a taper deformation contains a single user-definedscalar-valued function. Manipulation of this function controls thedeformation. The function has an intuitive geometric interpretation: itsinput is a value along, e.g., the z-axis, and its output is the amountby which the deformation will scale the model in the directionorthogonal to the z-axis. Denoting P the parameter set, notationallythis variation may be represented as: $\begin{matrix}{P = \left\{ {f(t)} \right\}} \\{{T_{i}(v)} = {{scale}\quad {{by}\left( {{f(v)},{f(v)},1} \right)}}} \\{{S_{i}(u)} = {1{\forall u}}} \\{{W_{i}\left( {v,u} \right)} = \left\{ \begin{matrix}1 & {{{if}\quad {\left( {{M(u)} - O} \right) \cdot \overset{\rightarrow}{z}}} = v} \\0 & {otherwise}\end{matrix} \right.}\end{matrix}$

[0149] Methods for scaling the effect of the transformation include boththe Displacement method and the Composition method. Other desirablewarping operations including, for instance, twisting, and bending ofgraphical objects (and combinations thereof) could also be used.

[0150] Yet another desirable warping capability is the manipulation ofsurface geometry of a 3-D object for modeling and animation. Oneconventional technique, known as “Wires” is described by Singh andFiume, Wires: A Geometric Deformation Technique, SIGGRAPH '98 ConferenceProceedinigs, Annual Conference Series, pg. 405-414. ACM SIGGRAPH,Addison-Weselely, July 1998. A similar warping result may be obtainedwith the present new techniques, and these techniques provide additionalwarping capability not found in with the “Wires” technique. In thisinstance, with technique, an undeformed model is represented as a set ofcontrol points that define.the surface of an object. That is, U is theset of indices {1, 2, . . . , l), where l is the number of controlpoints, and M(u) is the control point with index u.

[0151] The features for the warp are source and destination curves, andtheir related scalar parameters. A feature specification represents eachwire:

F_(i)={C_(i),C′_(i),f_(i),r_(i),x_(i), m_(i)}  (9a)

[0152] where C_(i) is the source or “reference” curve, C′_(i) is thetarget or “wire” curve, f_(i) is a falloff function and r_(i), x_(i),and m_(i) are user-defined parameters that will be described below.Preferably the falloff function takes R⁺→[0,1], is monotonicallydecreasing and at least C^(l) continuous, with f_(i)(0)=1,f_(i)(t)=0∀t≦1 and f′(1)=0. The wire and reference curves are assumed tobe parameterized on the domain V=[0,1] without loss of generality.

[0153] A feature specification, F_(i), is mapped to a transformation,T_(i)(v) also parameterized on V. This mapping uses the CompositionMethod, more particularly,

T _(i)(v)=T∘R∘S   (9b)

[0154] where:

T=C′ _(i)(v)−C _(i)(v)

[0155] R is the smallest rotation that takes the vector$\frac{{C_{i}(v)}}{v}\quad {to}\quad \frac{{C_{i}^{\prime}(v)}}{v}$

[0156] S is a uniform scale of magnitude s_(i) centered at the pointC_(i) (v) and r_(i) represents a rate of decrease on the strength field.A suitable strength field for a given feature specification convenientlydecreases from 1 to 0 as the distance from M(u) to C_(i)(v) varies from0 to r_(i). A preferred version is: $\begin{matrix}{{S_{i}\left( {v,u} \right)} = {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)}} & \left( {9c} \right)\end{matrix}$

[0157] A bounding region for the strength field may also be defined byadding an additional feature. Letting D_(i)(t) be a region-bounding or“domain” curve for a wire, i, D_(i)(t) is added to the featurespecification along with a user-selected scalar parameter, δ_(i):F_(i)={C_(i), C′_(i),r_(i), s_(i),m_(i),δ_(i)}. Letting D″_(i) be thepoint on D_(i) nearest M(u), then the strength field for F_(i) is:$\begin{matrix}{{S_{i}\left( {v,u} \right)} = \begin{Bmatrix}{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{{D_{i}^{M{(u)}} - {C_{i}(v)}}} \right)} & {{{if}\quad \alpha} \geq \delta_{i}} \\{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{{Interp}(\alpha)} \right)} & {{{if}\quad 0} < \alpha < \delta_{i}} \\{f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} & {{{if}\quad \alpha} \leq 0}\end{Bmatrix}} & \left( {9d} \right)\end{matrix}$

[0158] where α is (D_(i) ^(M(u))−C_(i)(v))·(M(u)−C_(i)(v)) and Interpvaries from r_(i) to ∥D_(i) ^(M(u))−C_(i)(v)∥ as α varies from 0 to δ.

[0159] The set of weighting fields corresponding to the set of featurespecifications is selected to warp each model point, M(u) based on theparameterized transformation value at the nearest location on thereference curve; if points are equidistant, preferably the one with thesmaller parameter value is selected. For feature specification, F_(i),the weighting field depends on how much the parameterized transformationT_(i)(v) displaces the point M(u): $\begin{matrix}{{W_{i}\left( {v,u} \right)} = \left\{ \frac{0\quad {if}\quad {\exists{c < {v\quad {s.t.\quad {{{M(u)} - {C_{i}(c)}}}}} < {{{M(u)} - {C_{i}(v)}}}}}}{{{{\left( {{S_{i}\left( {v,u,M} \right)} \cdot {T_{i}(v)}} \right){\langle{M(u)}\rangle}} - {M(u)}}}^{m_{i}\quad}{otherwise}} \right.} & \left( {9e} \right)\end{matrix}$

[0160] where m_(i) determines the relative effect of wires that causelarge versus small displacement.

[0161] In some instances, the warp designer desires that a curve bemarked as an “anchor.” To accommodate this aspect, a Boolean parameterand a user-specified scalar parameter, k_(i) are added to F_(i). When acurve is an anchor curve, non-zero values of W_(i)(v,u) are suitablyprovided by: $\begin{matrix}{{W_{i}\left( {v,u} \right)} = \left( {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} \right)^{k_{i}}} & \left( {9f} \right)\end{matrix}$

[0162] The embodiments just described used the Composition Method fordetermining the set of scaled transformations. In other embodiments, theDisplacement Method could be used. If the Displacement Method were used,results similar to those described in Lazarus et al., Axialdeformations: an intuitive deformation technique, Computer-Aided Design,26(8):607-613, August 1994, could be obtained. In addition, the presenttechnique can be used to carry on curve based warps for cel animationand produce results similar to those described, for instance in Correaet al.

[0163] Still further, in certain cases “Wires”-type deformations canresult in buckling and tearing artifacts. This occurs when a givenwire's reference curve is shaped so that it is equidistant from a set ofpoints in the model (the “Medial Set”) and different parts of the curvespecify competing deformations of the Medial Set. Such artifacts areeasily understood and remedied with some versions of the invention.

[0164] Recall, above, that weighting fields for wires werediscontinuous, containing singularities to ensure that only the nearestpoint on a curve contributes to the deformation of a model point (seeEquation 9e). The resulting warp, which is a function of these fields,will also contain discontinuities. Removing discontinuities in theweighting fields, successfully removes the discontinuities in the warpitself.

[0165] In one version of the invention, in order to remove suchdiscontinuities, the weighting fields for an ordinary wire are taken as:

W _(i)(v,u)=∥T _(i)(v)<M(u), S _(i)(v,u)>−M(u)∥^(m) _(^(i))   (9g)

[0166] and if the curve is tagged as an “anchor” the weighting field istaken as: $\begin{matrix}{{W_{i}\left( {v,u} \right)} = \left( {f_{i}\left( \frac{{{M(u)} - {C_{i}(v)}}}{r_{i}} \right)} \right)^{k_{i}}} & \left( {9h} \right)\end{matrix}$

[0167] The parameters k_(i) and m_(i) are as previously described. Theadvantages obtainable with such an embodiment of the present inventioncan be understood with reference to FIG. 14A-FIG. 14C. FIG. 14A. depictsa source feature 14100 and a target feature 14200 in an undeformedmodel. A Medial Set exists a set of points in the undeformed modelequidistant from the upper and lower portions of the target feature14200. With conventional wires-type deformation techniques,singularities in the weighting fields ensure that only the nearest pointon the curve contributes to deformation of the model. As the Medial Setfalls along a locus with non-unique nearest points, the deformation ofthe lower portion of the target feature 14200 creates a spatial bucklingartifact in the deformed model shown in FIG. 14B.

[0168] Using the weighting fields in Equation 9g above, thediscontinuities can be removed. The method now approximates an integraltaken along the curve, rather than considering only a single sample onthe curve. This incurs an added computational cost: every transformationsample along each wire curve now contributes to the deformation of eachmodel point. Thus, rather than sampling the curve exactly once for everymodel point as in the original method, one conveniently integrates alongthe curve or, in preferred embodiments, approximate the integral bysampling. The deformed model in FIG. 14C is obtained with uniformsampling along the curve. However, the deformed model in FIG. 14Cillustrates how the warp of this embodiment, eliminates bucklingartifacts caused by the discontinuities present with conventionalwires-type warps.

[0169] Another illustrative aspect of the invention provides a meshwarp. In this instance, a fine surface model is deformable through themanipulation of a coarse surface mesh.

[0170] Letting M(u) be a set of control vertices that define the finesurface model, indexed by uεU={1, . . . , }. A set of featurespecifications is taken as vertices of a coarse deformation mesh assumedto be in close proximity to the surface. Each of the set of featurespecifications encodes a vertex point's position and its incident edges.That is, for vertex i in the mesh, a feature specification is:

F_(i)={P_(i), E_(i), P′_(i), E′_(i)}  (10a)

[0171] where P_(i) and P′_(i) are the source and target position ofvertex i and where E_(i) and E′_(i) are the sets of edges incident onvertex i in the source and target meshes, respectively. Each edgeE_(ij)εE_(i) is represented as the vector from P_(i) to its adjacentvertex, and likewise for E′_(i). E_(i) typically has the same number ofelements as E′_(i), i.e. the target mesh has the same topology as thesource mesh.

[0172] Feature specifications have transformation compositions:

T_(i)=A∘T   (10b)

[0173] where T=P′_(i)−P_(i) and A maps the source edge set to E_(i) tothe target edge set E′_(i). Typically, more than three edges areincident on a vertex, i, so A cannot be computed to map E_(i) to E′_(i)exactly. Preferably, A is then chosen as a 3×3 matrix that best mapsE_(i) to E′_(i) in the least squares sense. In this instance A may beselected as A=E⁺E′ where E is an m×3 matrix having the vectors of E_(i)as its rows, and E′ an m×3 matrix having the vectors of E′_(i) as itrows and E⁺ is the pseudoinverse of E. Preferably the DisplacementMethod is used to scale the set of transformations.

[0174] In this instance, it is desirable that a rigid transformationapplied to the entire mesh to result in the same rigid transformation ofthe surface. One way of achieving this is to for a strength field to beset to unity:

S _(i)(u)=1∀i,u   (10c)

[0175] Here, it is also desirable that a weighting field should berelatively large near the source feature, P_(i). In addition, theweighting field is preferably zero at he end of each edge E_(ij);otherwise the transformation, T_(i) will compete with anothertransformation T_(j) created by the other vertex incident on E_(ij). Onesuitable formula for the weighting fields is: $\begin{matrix}{{W_{i}(u)} = {{f_{\alpha\beta}\left( \frac{{{M(u)} - P_{i}}}{E_{im}} \right)}\left( {\Pi_{j}{f_{\gamma \quad \mu}\left( \frac{\left( {{M(u)} - P_{i}} \right) \cdot E_{ij}}{E_{ij} \cdot E_{ij}} \right)}} \right)}} & \left( {10d} \right)\end{matrix}$

[0176] where f_(ab) (t) is a function that is 1 for t≦a, 0 for t≧b, andis an interpolating cubic in between. E_(im) denotes the vector in E_(i)of maximum length, and α, β, γ, and μ are scalar parameters that controlthe size of the maximum and non-zero regions of W_(i)(u), respectively.This specification of the weighting fields satisfies the desiredproperties and yields weighting fields that fill fuzzy polyhedral zoneswithin the mesh. Steps of a method for manipulating a coarse mesh inorder to deform a fine surface model can be better understood withreference to the following illustrative applications.

[0177] In cloth dynamics simulation, unwanted object intersectionssometimes occur due to limitations and simplifications in the simulatingtechnique. Frequently, rather than revisiting the simulation, it wouldbe desirable to perform a slight ad hoc deformation on the simulatedcloth to eliminate the intersection. Using our mesh warp, a lowresolution mesh may be created from vertices of the cloth, the lowresolution mesh may be manipulated to adjust the complex cloth mesh, forinstance by manipulation of the vertices, and the corrected simulatedcloth created from the adjusted low resolution mesh.

[0178]FIG. 15A depicts an undeformed model with simulated cloth and anunwanted object intersection. A region of simulated cloth intersection15100 is particularly identified. In FIG. 15B, a low resolution vertexmesh of the simulated cloth of FIG. 15A is shown. A low resolution meshintersection region 15200 corresponding to the region of simulated clothintersection 15100 in the surface mesh of FIG. 15A is identified. Withinit is a control vertex in the undeformed mesh 15250. The warp designercan manipulate the control vertex in the undeformed mesh 15250 toeliminate the low resolution mesh intersection region 15200. FIG. 15Cdepicts this correction having been made in the low resolution mesh. Alow resolution mesh correction 15300 is shown corresponding to the lowresolution mesh intersection region 15200. The control vertex in thedeformed mesh 15350 is shown and it can be seen that it has been movedand that the coarse mesh no longer intersects the object in the lowresolution mesh correction 15300. FIG. 15D depicts a deformed surfacemodel for the undeformed model of FIG. 15A showing the correctedsimulated cloth.

[0179] Frequently, warp designers desire to create avariation of acomplex surface model while still retaining the same basic shape of thesurface. Simple transformation mechanisms are useful for this sort ofcontrol. However, they may not provide the level of flexibility the warpdesigner requires. In such instances, an approximate low resolutionversion of the high resolution surface can be used to deform the surfacewhile maintaining the same basic shape of the surface. Using our meshwarp, a low resolution mesh may be created from vertices of the surfacemodel, the low resolution mesh may be manipulated to create a variationin the low resolution mesh, for instance by manipulation of thevertices, and a variation in the surface model created from thevariation in the low resolution mesh.

[0180]FIG. 16A depicts an original surface in an undeformed model.Assume the desired variation in the undeformed model was to enlarge aportion of the thumb. A low resolution mesh could be imposed on thesurface of FIG. 16A; this is shown in FIG. 16B. The low resolution meshcomprises a plurality of control vertices, two illustrative. ones ofwhich are a first control vertex 16100 and a second control vertex16200. The warp designer may adjust the control vertices to create avariation in the low resolution mesh. FIG. 16C depicts the adjustment ofthe low resolution mesh. The changed relative positions of the firstcontrol vertex 16100 and the second control vertex 16200 illustrateadjustment of the low resolution mesh. From the adjusted low resolutionmesh, a deformed model with a variation of the surface model is createdas shown in FIG. 16D.

[0181] To further illustrate our mesh warp, the following points arenoted about a preferred embodiment: First, our warp allows deformationmeshes of arbitrary topology and genus to be used. Secondly, unlike manyconventional methods that use meshes to control a deformation, our warpis interpolating: a point located at a vertex position in the originalmesh is deformed to the vertex position in the target mesh. Thirdly, ourwarp is defined spatially. This means that to create a deformation on anobject, the only requirement is that the deformation mesh be locatednear the object to be deformed. This makes constructing a deformationmesh particularly easy: the vertices of the deformation mesh can be, forinstance, any subset of the vertices of an original mesh, or someentirely new enclosing mesh. Still further, since the weighting fieldfor a mesh vertex falls to 0 roughly outside the polyhedral cells thevertex bounds, moving a single point in the deformation mesh haslocalized effect in the warp.

[0182] Still another illustrative embodiment of the invention providesmechanism to deform a first surface by mapping regions of the firstsurface to regions of a second surface (hereinafter “Surface RegionWarp”).

[0183] In one illustrative version of a Surface Region warp, M(u) istaken as control vertices that define the first surface, indexed byuεU={1, . . . , m}. A set of strength fields for the warp will besurface regions: surfaces or parts of surfaces. A convenient way todescribe a surface region is as a parameterized function Surf (v), thatreturns a (point, normal) tuple for a given location on the surface.While in principle, the surface region is a continuum, preferably afinite array of surface samples are used and vεV={1, . . . , n} is thearray index. The position of a given sample Surf(v) is denotedSurf(v).pos and the normal Surf(v).norm. Feature specifications for thiswarp are:

F_(i)={Surf_(i),Surf′_(i)α_(i),β,r_(i), e_(i)}  (11a)

[0184] Where Surf is a source surface region, Surf′ is a target surfaceregion, and α_(i), β_(i), r_(i), and e_(i) are scalar parametersdescribed below. For each of a set of feature specifications, F_(i), wepreferably create a set of sampled transformations T_(i)(v) by:

T _(i)(v)=R∘T   (11b)

[0185] where T=Surf_(i)(v).pos−Surf_(i)(v).pos maps the source surfacesample position to the target surface sample position and R is thesmallest rotation that takes Surf_(i)(v).norm to Surf′_(i)(v).norm.Preferably the Displacement Method is used to scale the effect of eachtransformation.

[0186] Highly customized strength fields and weighting fields may becreated by the warp designer responsive to, for instance, the structureand/or topology surface in the undeformed model. Absent this type ofcustomization, simple strength fields and weighting fields may beconveniently selected. For instance, a strength field could be selectedso that the effect of the deformation is localized around the sourcesurface; one could be:

S _(i)(v,u)=f _(α) _(i) _(β) _(i) (∥M(u)−Surf_(i)(v).pos∥)   (11c)

[0187] where f_(ab)(t) is a C−1 continuous cubic function suchf_(ab)(t)=1 for t≦a and f_(ab)(t)=0 for t≧b. Also, α_(i) determines theextent where the deformation is full, and β_(i) where the deformation iszero.

[0188] The weighting fields conveniently fall off as a distance from atmodel point to a position of a source surface sample increases. Further,the weighting fields fall off with the strength fields as the relativeinfluence of a single sample is preferably zero when its absolute effectis zero. One suitable weighting field could be: $\begin{matrix}{{W_{i}\left( {v,u} \right)} = {{S_{i}\left( {v,u} \right)}\left( \frac{1}{ɛ + \left( \frac{{{M(u)} - {{{Surf}_{i}(v)} \cdot {pos}}}}{r_{i}} \right)^{e_{i}}} \right)}} & \left( {11d} \right)\end{matrix}$

[0189] where ε is a small scalar value use to avoid division by zero,and r_(i) and e_(i) control the weighting field's range and fall offrate, respectively.

[0190] An illustrative application of the Surface Region Warp is todeform a first surface in an animation when it is contacted by a secondsurface. The second surface might, for instance, cause a dent in thefirst surface, or might stick to the first surface and stretch it out ofshape. The previously-described Surface Region Warp can be used tocontrol the deformation based on proximity of the first and secondsurfaces.

[0191]FIG. 17A depicts an undeformed model with a second surface 17200(the character's hand) contacting a first surface 17100 (the character'shead). In such a situation, the animator or warp designer may desire forthe second surface 17200 to leave an impression or dent in the firstsurface 17100 or to stretch the first surface 17100 when the secondsurface 17200 is pulled away in the animation. FIG. 17B depicts adeformed model with the first surface 17100 deformed to match the secondsurface 17200. An indentation 17250 is visible. FIG. 17C depicts anotherview of the deformed model of FIG. 17B. In FIG. 17C, with thecharacter's hand removed, it can more easily be seen that the firstsurface 17100 has been deformed to match the second surface 17200. Theindentation 17250 is visible and it will be appreciated that each fingerof the character's hand left an indentation in the character's head.

[0192] A different effect is shown in FIG. 17D. There, a first surfacedeformed by contact with the second surface 17400 is visible. Thisfigure illustrates stretching of the character's head by contact withthe character's hand.

[0193] To further understand our Surface Region Warp, the followingpoints are noted about a preferred embodiment: First, the Surface RegionWarp is an interpolating warp that takes source surface regions totarget surface regions. Second, it is independent of the representationof the surface regions, so that surfaces of any type may be used todefine the surface regions. Third our Surface Region Warp allows anyrepresentation to be used for the model as well. Fourth, our warp issimple to develop and yields goods results in a wide variety of cases.Finally notice that, strictly peaking, the new warp no longer exactlymaps source curves to target curves. However, in practice it stillvisually interpolates the feature curves.

[0194] Warp Commutativity

[0195] It may be desirable for warps to commute, that is for the resultof their composition to be invariant as to ordering. If warps commute,for instance in interactive modeling and animation, then the warpdesigner could be guaranteed that order of operations did not matter andthus achieve more predictable behavior, overall.

[0196] Warps performed in accordance with the present invention can beguaranteed to commute if two conditions are met. Notationally, two warpsA & B with deforming functions D_(A)(u) and D_(B)(u), can be said tocommute if and only if for all u:

D _(B)(u,D _(A) <M>)=D _(A)(u,D _(B) <M>)

[0197] The two conditions are (1) neither D_(A)(u) nor D_(B)(u) behavedifferent if D_(B)(u) or D_(A)(u), respectively, is previously appliedto the model M; and (2) the order of application of D_(A)(u) andD_(B)(u) does not matter to the final result.

[0198] Condition (1) can be satisfied by ensuring that the set oftransformations, set of strength fields, and set of weighting fields foreach warp do not change if the other warp is applied first. Condition(2) can be satisfied by ensuring that all weighted averages of warp A'stransformations commute with all weighted averages of warp B'stransformations.

[0199] Instead of computing the strength filed and weighing values onthe warped model M′, transformations may be pre-computed and fieldvalues on the original model M and use these to define the warp. In thisinstance, the only requirement is that parameterized transformationvalues commute. This condition is satisfied by many instances. Notably aweighed average of translations is a translation and all translationscommute. Thus, if all transformation values in two warps aretranslations, then pre-computation of their transformations on theoriginal model guarantees commutativity the transformations. If twowarps compute weighted averages of transformations as weighted averagesof the translations caused by those translations, then pre-computationsimilarly guarantees commutativity of the warps.

[0200] Interpolation and Approximation

[0201] In the case of feature-based warps, a noteworthy property iswhether the warp is interpolating or approximating. An interpolatingwarp maps model points located on source features to correspondinglocations on target features. Approximating warps, on the other hand, donot necessarily map model points from source feature positions to theirtarget positions. Frequently, approximating warps are smoother thaninterpolating warps and can provide a more-intuitive user interface.

[0202] As previously described, parameterized transformations may beconstructed so that each point on a source feature corresponds to asingle transformation value that maps the point on the source feature toa corresponding point on the target feature.

[0203] Under appropriate conditions, a feature-based warp isinterpolating. Assuming a model point M(u) has the same position as somepoint on a source feature and that T_(i)(v) is the transformation valueassociated for that point, then a feature based warp will beinterpolating if, for all such points, the following conditions are met:

[0204] T_(i)(v) takes the point on the source feature to itscorresponding point on the target feature

s _(i)(v,u)=1

w_(i)(v,u)≠0

w _(i)(x,u)=0∀xεV _(i) x≠v; and

w _(j)(y,u)=0∀i≠j,yεV _(j)

[0205] As these conditions may be more stringent than desirable inpractice, conveniently, a feature based warp may be visually orapproximately interpolating. A warp may achieve this when a feature'stransformation acts with essentially full strength and dominates theweighting contributions of other transformations. More formally:

[0206] T_(i)(v) takes the point on the source feature to itscorresponding point on the target feature

s _(i)(v,u)≈1

w_(i)(v,u)≠0

w _(i)(v,u)>>w _(i)(x,u)∀v,xεV _(i) x≠v; and

w _(i)(v,u)>>w _(j)(v,u)∀i≠j,yεV _(j)

[0207] Warp Inversion

[0208] A warp designer may desire to find a warp's inverse, or, moregenerally determine if a particular warp is invertible. Yet anotheraspect of the present invention is the computation of a warp that has aninverse. Any warp that has an inverse may have that inverse computed inaccordance with the present invention.

[0209] As noted above, one may understand the deformed model asresulting from the application of a transformation valued deformingfunction, D(u, M), to the undeformed model. Applying the inversetransformation—(D(u,M))⁻¹—inverts the deformation caused by thisdeforming function. Notationally, the inverse of the deforming functionΔ(u, M) is given by:

D ⁻¹(u,M)=(D(u,M))⁻¹ ∀uεU.

[0210] This, alone, may not be instructive to the warp designer who,rather, may desire that computation of the inverse warp compute theparameterized transformations, strength fields, and weighting fields forthe inverse warp than just the final transformations. Unfortunately,this is not possible for all warps. However, yet another aspect of thepresent invention involves the computation of these parameterizedtransformations, strength fields, and weighting fields for the inversewarp.

[0211] In accordance with this aspect, a warp is inverted by invertingits parameterized transformations, strength fields, and weightingfields. This will correctly compute the inverse warp where strengthfields and weighting fields for the inverse warp evaluate to the samevalues on both the undeformed model and the deformed model.Notationally, an inverse warp may be constructed by using parameterizedtransformations T_(i) ⁻¹(v), strength fields, and weighting fields ininstances where the following conditions are satisfied:

w _(i)(v,u,M)=w _(i)(v,u,D<M>)∀iε{1, . . . , n},vεV _(i)

If w _(i)(v,u,M)≠w _(i)(v,u,D<M>)∀iε{1, . . . , n},vεV _(i) then s_(i)(v,u,M)=s _(i)(v,u,D<M>)

[0212] Two points should be appreciated. First, this form isparticularly beneficial for feature-based warps as it is natural for thewarp designer to invert a feature based warp by swapping its source andtarget features and compute a new warp. In a feature based warp,swapping the features has the effect of inverting the warp'sparameterized transformations. For this approach to correctly generatethe inverse warp, i.e., for the conditions above to be satisfied, theset of strength fields, and the set of weighting fields should evaluateto the same values on both the undeformed model and the deformed model.

[0213] There is no, a priori, reason for this to be convenientlyarrangeable in many warps. However, in yet another aspect of the presentinvention this restriction may be removed. In accordance with thisaspect, the set of strength fields values and the set of weightingfields values are precomputed on the undeformed model and stored. When,later, computation of the inverse warp is desired, the precomptuedvalues are retrieved and used to compute the inverse warp.

[0214] Second, D(u,M) may not have an inverse at all, e.g. a projection,and in this instance, could not be computed.

[0215] Varying Warps Over Time

[0216] Many desirable applications of warping in morphing and animationinvolve controlling the evolution of a warp over time. Yet anotheraspect of the present invention involves aspects for controlling theevolution of a warp over time.

[0217] In one variation, conveniently applicable to morphing, the warpdesigner smoothly varies a deformation from zero to full effect. Oneversion of this involves interpolating between an identitytransformation, I, and the deforming function D(u,M) that warps theundeformed model to the fully deformed model. A single parameter, s, maybe used to control the transformation:

W(s)=(s·1+(1−s))·D(u,M))<M(u)>

[0218] It will be appreciated that with this technique, the parameter smay be chosen to smoothly vary over time.

[0219] In a similar vein, interpolation may be taken between theidentity transformation and each of the scaled transformations T_(i)(v).This provides the advantage that each parameterized transformation valuecan be controlled independently. In some embodiments employing thistechnique, a morph is scheduled so that different parts of the modelmorph at different rates.

[0220] Yet another approach is to scale the strength fields animated bythe morph parameters varying from zero (no deformation) to 1 (fulldeformation). When the Displacement Method is used to scaletransformations by scalar values, this approach is similar tointerpolating between T_(i)(v) and the identity transformation. When theComposition Method is used, this approach provides more intuitivegeometric scheduling as the parameters defining the transformation willbe scaled rather than the displacements caused by the transformations.

[0221] Some embodiments could use still another approach for creatingtime-varying warps. In this approach—applicable to feature-basedwarps—the target features are animated smoothly from source position totarget position and the same warping techniques (now with animatedfeatures) is used at each morph time-step. It will be appreciated thatin this way a smooth transition can be achieved between the undeformedand deformed models.

[0222] One skilled in the art having the benefit of this disclosure willappreciated that features of the invention may be used to createdeformations varying over time through varying, for instance, strengthfields, weighting fields, parameterized transformations, or featuresthemselves. Temporal variations of deformations will generally be smoothif variations of the parmeterized transformations, strength fields, andweighting fields are smooth. If the number of discrete transformationschanges from time-step to time-step, care should be taken to blendin/out the added/removed transformations with weighting fields ofsmoothness of the warp is desired. Otherwise, the resulting warp may notbe smooth.

[0223] By the same token, temporal discontinuities in strength fieldsofweighting fields can introduce temporal discontinuities in the deformingfunction. Continuous temporal warp behavior can be obtained fromcontinuous behavior of warp parameters if small changes in theparameters of the warp produce small changes in the strength fields andweighting fields generated from these parameters.

[0224] Although the present invention has been described in terms offeatures illustrative embodiments, one skilled in the art willunderstand that various modifications and alterations may be madewithout departing from the scope of the invention. Accordingly, thescope of the invention is not to be limited to the particularembodiments discussed herein, but should be defined only by the allowedclaims and equivalents thereof.

What is claimed is:
 1. A computer-implemented method for generating graphical warps or deformations through transformation of an undeformed model to a deformed model, said computer-implemented method comprising: receiving said undeformed model and a set of feature specifications each of said set of feature specifications comprising a source feature, a target feature, and related deformation parameters; receiving a set of transformations corresponding to said set of feature specifications and for mapping said source feature to said target feature in each of said set of feature specifications; receiving a set of strength fields corresponding to said set of feature specifications and defined over said undeformed model for scaling the magnitude of each of said set of transformations, establishing a set of scaled transformations; receiving a set of weighting fields corresponding to said set of feature specifications and defined over said undeformed model for determining the relative influence of said set of scaled transformations; computing a sum of said set of scaled transformations weighted by said set of weighting fields, for deforming said undeformed model to generate said deformed model; and returning said deformed model.
 2. The computer-implemented method according to claim 1 wherein at least one of said set of feature specifications is continuous and has corresponding parameterized strength field, transformation, and weighting field, and further comprising: receiving a sampling function for discretizing said parameterized transformation and sampling said strength field and said weighting field; computing a discretized transformation, a sampled strength field, and a sampled weighting field with said sampling function; and wherein said step of computing an sum of said set of scaled transformations employs said discretized transformation, said sampled strength field, and said sampled weighting field.
 3. The computer-implemented method according to claim 2 wherein said set of feature specifications, said set of transformations, said set of strength fields, said set of weighting fields, and said sampling function are received by a combined function that computes said discretized transformation, said sampled strength field, and said sampled weighting field.
 4. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises a plurality of line segment features; said set of transformations corresponding to said plurality of line segment features map source coordinate frames to target coordinate frames; and said set of weighting fields corresponding said plurality of line segment features fall off with distance.
 5. The computer-implemented method according to claim 4 wherein: said set of weighting fields give influence to line segment features in said plurality of line segment features in relation to their length.
 6. The computer-implemented method according to claim 4 wherein: said source coordinate frames comprise a constrained basis vector and an unconstrained basis vector and wherein said unconstrained basis vector is selected responsive to a weighted sum of the vectors perpendicular to the constrained basis vector for each of said target coordinate frames.
 7. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises control points in an at least two dimensional lattice; said at least two dimensional lattice having an associated local coordinate system; said set of weighting fields corresponding to said control points comprise Bernstein polynomials with arguments comprising points of said undeformed model represented in said local coordinate system.
 8. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises an oriented point in an least two dimensional lattice; said at least two dimensional lattice having an associated local coordinate system; the transformation in said set of transformations corresponding to said oriented maps a source coordinate frame to a target coordinate frames; and said set of weighting fields corresponding to said oriented points comprise Bernstein polynomials with arguments comprising points of said undeformed model represented in said local coordinate system.
 9. The computer-implemented method according to claim 1 wherein: said set of transformations comprises a geometrically parameterized transformation.
 10. The computer-implemented method according to claim 9 wherein: said set of transformations comprises plural geometrically parameterized transformations; and said set of strength fields modulate said plural geometrically parameterized transformations.
 11. The computer-implemented method according to claim 10 wherein: said set of weighting fields blend said plural geometrically parameterized transformations.
 12. The computer-implemented method according to claim 1 wherein: at least one of said set of feature specifications comprises a source curve and a target curve; corresponding members of said set of transformations comprise a composition of a translation from points along said source curve to points along said target curve, a rotation taking the tangent at said points along said source curve to the tangent at said points along said target curve, and a scale centered at said points along said source curve; corresponding members of said set of strength fields comprise a falloff function having a domain and a range and monotonically decreasing over said range, and wherein over at least a portion of said domain arguments of said falloff function comprise a distance between points of said undeformed model and point along said source curve and a rate of falloff for said distance. corresponding members of said set of weighting fields comprise a scaled displacement function having a domain and a range, wherein for at least a portion of said domain said scaled displacement function comprises a power of the displacement of elements of said undeformed model by said corresponding members of said set of transformations.
 13. The computer-implemented method according to claim 12 wherein said scaled displacement function comprises a power of the displacement of elements of said undeformed model by said corresponding members of said set of transformations for the entirety of said domain.
 14. The computer-implemented method according to claim 1 wherein: said undeformed model comprises control vertices of a fine surface model; and at least one of said set of feature specifications comprise: a source position and a target position of one or more vertices of a coarse deformation mesh configured for deformation of said fine surface model, and a set of edges incident on said one or more vertices.
 15. The computer-implemented method according to claim 14 wherein: corresponding members of said set of transformations comprise a composition of: a translation mapping said source.position to said target position, and at least an approximation of a.mapping of said set of edges in said undeformed model to said deformed model.
 16. The computer-implemented method according to claim 15 wherein: corresponding members of said set of weighting fields comprise a falloff function, said falloff function substantially zero at a distal end of each of said set edges incident on said one or more vertices, and said falloff function substantially at its maximum value for arguments proximate to said source positions of said control vertices.
 17. The computer-implemented method according to claim 1 wherein: said undeformed model comprises control vertices of a surface for deformation, wherein source and target features are parameterized as a function that returns a tuple comprising a point and a vector normal to said point; at least one of said set of feature specifications comprises a source region and a target region; corresponding members of said set of transformations comprise a composition of: a translation mapping points on said source region to points on said target region, and a rotation taking said vector normal to said points on said source region to said vector normal to said points on said target region of said surface.
 18. The computer-implemented method according to claim 17 wherein corresponding members of said set of strength fields localize the effect of said set of transformations around said source surface region.
 19. The computer-implemented method according to claim 18 wherein: corresponding members of said set of weighting fields decrease monotonically with corresponding members of said set of strength fields and wherein said set of weighting fields decrease responsive to: a distance between control vertices of said surface for deformation and said point on said surface, and a range for limiting the region of said weighting field, and a rate for controlling the rate of decrease of said weighting field.
 20. The computer-implemented method according to claim 1 wherein: one of said set of feature specifications act with substantially full strength across said undeformed model and corresponding the member of said set of weighting fields dominates weighting contributions of other members of said set of weighting fields. 